"""
Модуль выполняет функции:
- Получает конфигурацию из файла config.yaml
- Кластеризует объекты методом K-Means согласно конфигурации
- Выводит статистические данные в терминал
- Визуализирует результаты на 3D графике
"""
from swarm_network import charts
from swarm_network import clusters
from swarm_network import data

# Чтение конфигурации и установка параметров генерации
config = data.read_config('config.yaml')
data_directory = config['data_directory']
base_point = config['base_point']
data_filename = config['data_filename']

# Ручное конфигурирование
# data_filename = "data-grid-100-side100000-z1000"
count_clusters = 10 # Переопределение количества кластеров
show_objects = True

# Получение объектов из файла
df_objects = data.get_data(data_directory, data_filename)

# Кластеризация
df_objects, df_clusters = clusters.clustering(df_objects, count_clusters, base_point)

clusters.print_stat(df_objects)

charts.print_leaders(df_objects, df_clusters, base_point, None, show_objects)
